double x22)
{
GskPangoRenderer *crenderer = (GskPangoRenderer *) (renderer);
+ PangoLayout *layout;
+ PangoRectangle ink_rect;
cairo_t *cr;
double x, y;
- cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds);
+ layout = pango_renderer_get_layout (renderer);
+ if (!layout)
+ return;
+ pango_layout_get_pixel_extents (layout, &ink_rect, NULL);
+ cr = gtk_snapshot_append_cairo (crenderer->snapshot,
+ &GRAPHENE_RECT_INIT (ink_rect.x, ink_rect.y,
+ ink_rect.width, ink_rect.height));
set_color (crenderer, part, cr);
x = y = 0;
if (!handled)
{
cairo_t *cr;
+ PangoRectangle ink_rect;
layout = pango_renderer_get_layout (renderer);
if (!layout)
return;
- cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds);
+ pango_layout_get_pixel_extents (layout, &ink_rect, NULL);
+ cr = gtk_snapshot_append_cairo (crenderer->snapshot,
+ &GRAPHENE_RECT_INIT (ink_rect.x, ink_rect.y,
+ ink_rect.width, ink_rect.height));
shape_renderer = pango_cairo_context_get_shape_renderer (pango_layout_get_context (layout),
&shape_renderer_data);
const GdkRGBA *color)
{
GskPangoRenderer *crenderer;
- PangoRectangle ink_rect;
g_return_if_fail (snapshot != NULL);
g_return_if_fail (PANGO_IS_LAYOUT (layout));
crenderer->snapshot = snapshot;
crenderer->fg_color = *color;
- pango_layout_get_pixel_extents (layout, &ink_rect, NULL);
- graphene_rect_init (&crenderer->bounds, ink_rect.x, ink_rect.y, ink_rect.width, ink_rect.height);
-
pango_renderer_draw_layout (PANGO_RENDERER (crenderer), layout, 0, 0);
gsk_pango_renderer_release (crenderer);
crenderer->snapshot = snapshot;
crenderer->fg_color = color;
- graphene_rect_init (&crenderer->bounds, 0, 0, clip->width, clip->height);
-
gtk_text_layout_wrap_loop_start (layout);
have_selection = gtk_text_buffer_get_selection_bounds (layout->buffer,